<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="mandoc.css" type="text/css" media="all"/>
  <title>BOOTISO(1)</title>
</head>
<body>
<table class="head">
  <tr>
    <td class="head-ltitle">BOOTISO(1)</td>
    <td class="head-vol">General Commands Manual</td>
    <td class="head-rtitle">BOOTISO(1)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<code class="Nm">bootiso</code> &#x2014;
<div class="Nd">create a bootable USB drive from an image file</div>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
Each line depicts an action, with the exception of the first three lines which
  describe <b class="Sy">install</b> action modes. Respectively,
  &#x201C;Automatic,&#x201D; &#x201C;Image-Copy&#x201D; and
  &#x201C;Mount-Rsync&#x201D; modes. In the latest two,
  <var class="Ar">INSTALLMODS</var> refers to an option enumerated in the first
  &#x201C;Automatic&#x201D; synopsis line. When both short and long options
  exist, only one is printed.
<p class="Pp"></p>
<br/>
<table class="Nm">
  <tr>
    <td><code class="Nm">bootiso</code></td>
    <td>[<code class="Fl">-aJMy</code>] [<code class="Fl">-d</code>
      <var class="Ar">device</var>] [<code class="Cm">--no-hash-check</code> |
      [<code class="Cm">--hash-file</code> <var class="Ar">hashfile</var>]
      [<code class="Cm">--force-hash-check</code>]]
      [<code class="Cm">--no-size-check</code>]
      [<code class="Cm">--no-usb-check</code>] [<code class="Cm">--</code>]
      <var class="Ar">imagefile</var></td>
  </tr>
</table>
<br/>
<table class="Nm">
  <tr>
    <td><code class="Nm">bootiso</code></td>
    <td><code class="Cm">--icopy</code> [<var class="Ar">INSTALLMODS</var>
      <span class="No">...</span>] [<code class="Cm">--dd-bs</code>
      <var class="Ar">blocksize</var>] [<code class="Fl">-D</code>
      [<code class="Cm">--data-part-fs</code> <var class="Ar">fstype</var>]]
      [<code class="Cm">--</code>] <var class="Ar">imagefile</var></td>
  </tr>
</table>
<br/>
<table class="Nm">
  <tr>
    <td><code class="Nm">bootiso</code></td>
    <td><code class="Cm">--mrsync</code> [<var class="Ar">INSTALLMODS</var>
      <span class="No">...</span>] [<code class="Fl">-L</code>
      <var class="Ar">label</var>] [<code class="Fl">-F</code>
      <var class="Ar">fstype</var>] [<code class="Cm">--gpt</code>]
      [<code class="Cm">--no-wimsplit</code>]
      [<code class="Cm">--part-type</code> <var class="Ar">typeid</var>]
      [<code class="Cm">--local-bootloader</code> |
      <code class="Cm">--remote-bootloader</code> <var class="Ar">version</var>]
      [<code class="Cm">--</code>] <var class="Ar">imagefile</var></td>
  </tr>
</table>
<br/>
<table class="Nm">
  <tr>
    <td><code class="Nm">bootiso</code></td>
    <td><code class="Fl">-f</code> [<code class="Fl">-ay</code>]
      [<code class="Fl">-d</code> <var class="Ar">device</var>]
      [<code class="Fl">-L</code> <var class="Ar">label</var>]
      [<code class="Fl">-F</code> <var class="Ar">fstype</var>]
      [<code class="Cm">--gpt</code>] [<code class="Cm">--no-usb-check</code>]
      [<code class="Cm">--part-type</code> <var class="Ar">typeid</var>]</td>
  </tr>
</table>
<br/>
<table class="Nm">
  <tr>
    <td><code class="Nm">bootiso</code></td>
    <td><code class="Fl">-i</code> [<code class="Fl">-M</code>]
      [<code class="Cm">--no-hash-check</code> |
      [<code class="Cm">--hash-file</code> <var class="Ar">hashfile</var>]
      [<code class="Cm">--force-hash-check</code>]] [<code class="Cm">--</code>]
      <var class="Ar">imagefile</var></td>
  </tr>
</table>
<br/>
<table class="Nm">
  <tr>
    <td><code class="Nm">bootiso</code></td>
    <td><code class="Fl">-l</code> [<code class="Cm">--no-usb-check</code>]</td>
  </tr>
</table>
<br/>
<table class="Nm">
  <tr>
    <td><code class="Nm">bootiso</code></td>
    <td><code class="Fl">-p</code> [<code class="Fl">-M</code>]
      [<code class="Cm">--no-hash-check</code> |
      [<code class="Cm">--hash-file</code> <var class="Ar">hashfile</var>]
      [<code class="Cm">--force-hash-check</code>]]
      [<code class="Cm">--no-usb-check</code>] [<code class="Cm">--</code>]
      <var class="Ar">imagefile</var></td>
  </tr>
</table>
<br/>
<table class="Nm">
  <tr>
    <td><code class="Nm">bootiso</code></td>
    <td><code class="Fl">-h</code></td>
  </tr>
</table>
<br/>
<table class="Nm">
  <tr>
    <td><code class="Nm">bootiso</code></td>
    <td><code class="Fl">-v</code></td>
  </tr>
</table>
</section>
<h1 class="Sh">TABLE OF CONTENTS</h1>
<ul class="Bl-compact">
  <li><a href="#DESCRIPTION">DESCRIPTION</a>
    <ul class="Bl-compact">
      <li><a href="#Features">Features</a></li>
      <li><a href="#Actions">Actions</a></li>
      <li><a href="#Generic_Modifiers">Generic Modifiers</a></li>
      <li><a href="#Install_mode_modifiers">Install mode modifiers</a></li>
    </ul>
  </li>
  <li><a href="#INSTALL_MODES">INSTALL MODES</a></li>
  <li><a href="#GUARDRAILS">GUARDRAILS</a></li>
  <li><a href="#ENVIRONMENT">ENVIRONMENT</a></li>
  <li><a href="#EXIT_STATUS">EXIT STATUS</a></li>
  <li><a href="#EXAMPLES">EXAMPLES</a></li>
  <li><a href="#TROUBLESHOOTING">TROUBLESHOOTING</a></li>
  <li><a href="#COPYRIGHT">COPYRIGHT</a></li>
  <li><a href="#SEE_ALSO">SEE ALSO</a></li>
  <li><a href="#COMPATIBILITY">COMPATIBILITY</a></li>
  <li><a href="#STANDARDS">STANDARDS</a></li>
  <li><a href="#AUTHORS">AUTHORS</a></li>
</ul>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<code class="Nm">bootiso</code> is a command-line utility aimed at simplifying
  the task of &#x201C;burning&#x201D; a USB storage device with a bootable disk
  image. The program can be safely called with no options. Read
  <a class="Sx" href="#EXAMPLES">EXAMPLES</a> section for a quick summary of
  typical invocations.
<section class="Ss">
<h2 class="Ss" id="Features"><a class="permalink" href="#Features">Features</a></h2>
One can use <a class="Xr" href="https://manned.org/dd.1">dd(1)</a> utility for
  hybrid images, but not all images are hybrid and the operation is error-prone,
  especially for amateur UNIX users, thus its &#x201C;disk destroyer&#x201D;
  nickname. In addition to offering a safety layer (see
  <a class="Sx" href="#GUARDRAILS">GUARDRAILS</a> section),
  <code class="Nm">bootiso</code> will handle hybrid and non-hybrid SYSLINUX or
  UEFI compliant images such as any GNU-Linux, Windows or rescue live-cds like
  UltimateBootCD images. This program also offers additional features, such as
  quickly format a USB drive, inspecting an image file or listing USB-connected
  drives. Supported images format are plain disk images (img) and ISO 9660
  files.
<p class="Pp"><code class="Nm">bootiso</code> can be invoked with two types of
    options: actions and modifiers. Actions determine the goal of the program
    execution, and modifiers define the specifics to reach that goal. At most
    one action flag can be set. In the absence of action flag,
    <code class="Nm">bootiso</code> assumes <b class="Sy">install</b> action in
    &#x201C;Automatic&#x201D; mode: inspect <var class="Ar">imagefile</var> boot
    capabilities and find the best way to make a bootable USB drive (see
    <a class="Sx" href="#INSTALL_MODES">INSTALL MODES</a> bellow).</p>
</section>
<section class="Ss">
<h2 class="Ss" id="Actions"><a class="permalink" href="#Actions">Actions</a></h2>
<dl class="Bl-tag">
  <dt><a class="permalink" href="#f,"><code class="Fl" id="f,">-f,</code></a>
    <code class="Cm">--format</code></dt>
  <dd>Wipe and format the selected USB device. <b class="Sy">Default
      Behavior:</b> If no device were explicitly selected with
      <code class="Cm">--device</code> modifier, <code class="Nm">bootiso</code>
      will prompt for selection. With no further notice,
      <code class="Nm">bootiso</code> will write a MBR partition table and
      format a FAT32 partition. These defaults can be overridden with
      <code class="Cm">--gpt</code> and <code class="Cm">--fs</code>
    modifiers.</dd>
  <dt><a class="permalink" href="#h,"><code class="Fl" id="h,">-h,</code></a>
    <code class="Cm">--help</code></dt>
  <dd>Display a concise list of options then exits.</dd>
  <dt><a class="permalink" href="#i,"><code class="Fl" id="i,">-i,</code></a>
    <code class="Cm">--inspect</code></dt>
  <dd>Inspect <var class="Ar">imagefile</var> boot capabilities and how
      <code class="Nm">bootiso</code> can handle it. In addition, validate this
      file against a hash file if one is found, then exit.</dd>
  <dt><a class="permalink" href="#l,"><code class="Fl" id="l,">-l,</code></a>
    <code class="Cm">--list-usb-drives</code></dt>
  <dd>List USB drives then exits. Diverse information will be printed such as
      model, vendor, size and device file name which can be later used with
      <code class="Fl">-d,</code> <code class="Cm">--device</code>
    modifier.</dd>
  <dt><a class="permalink" href="#p,"><code class="Fl" id="p,">-p,</code></a>
    <code class="Cm">--probe</code></dt>
  <dd>Probe is equivalent to <b class="Sy">inspect</b> followed by
      <b class="Sy">list USB drives</b> actions.</dd>
  <dt><a class="permalink" href="#v,"><code class="Fl" id="v,">-v,</code></a>
    <code class="Cm">--version</code></dt>
  <dd>Displays <code class="Nm">bootiso</code> version then exits.</dd>
</dl>
</section>
<section class="Ss">
<h2 class="Ss" id="Generic_Modifiers"><a class="permalink" href="#Generic_Modifiers">Generic
  Modifiers</a></h2>
Use generic modifiers knowingly as some might override default safe behaviors.
<dl class="Bl-tag">
  <dt><a class="permalink" href="#a,"><code class="Fl" id="a,">-a,</code></a>
    <code class="Cm">--autoselect</code></dt>
  <dd>Enable &#x201C;autoselect&#x201D; behavior in combination with
      <code class="Cm">--assume-yes</code> modifier. It will automatically
      select a USB drive device if there is exactly one connected to the system.
    <p class="Pp"><b class="Sy">Notice:</b> The &#x201C;autoselect&#x201D;
        behavior is the default behavior when &#x201C;assume yes&#x201D; is not
        enabled, unless either <code class="Cm">--device</code> or
        <code class="Cm">--no-usb-check</code> modifiers are set.</p>
  </dd>
  <dt><a class="permalink" href="#d"><code class="Fl" id="d">-d</code></a>
    <var class="Ar">device,</var> <code class="Cm">--device</code>
    <var class="Ar">device</var></dt>
  <dd>Select <var class="Ar">device</var> block file as the action target. When
      <var class="Ar">device</var> is not connected through a USB bus,
      <code class="Nm">bootiso</code> will fail and exit, unless
      <code class="Cm">--no-usb-check</code> is set.
    <p class="Pp"><b class="Sy">Notice:</b> Device block files are located in
        <span class="Pa">/dev/</span>. The <span class="Pa">/dev/</span> prefix
        can be omitted. You will be prompted to select a device when not using
        this modifier. Also, this option is not compatible with loop
      devices.</p>
  </dd>
  <dt><a class="permalink" href="#D"><code class="Fl" id="D">-D</code></a>,
    <code class="Cm">--data-part</code></dt>
  <dd>Add a supplementary data partition after installation. Requires
      <code class="Cm">--icopy</code> or <code class="Cm">--dd</code> install
      modifier.
    <p class="Pp"><b class="Sy">Notice:</b> This will only work with
        <var class="Ar">imagefiles</var> containing MBR or GPT partition
        schemes.</p>
  </dd>
  <dt><a class="permalink" href="#--data-part-fs"><code class="Cm" id="--data-part-fs">--data-part-fs</code></a>
    <var class="Ar">fstype</var></dt>
  <dd>Change filesystem type for the supplementary data partition. Default is
      FAT32. Requires <code class="Cm">--icopy</code> or
      <code class="Cm">--dd</code> install modifier.</dd>
  <dt><a class="permalink" href="#--dd-bs"><code class="Cm" id="--dd-bs">--dd-bs</code></a>
    <var class="Ar">blocksize</var></dt>
  <dd>Specify the maximum block-size used by
      <a class="Xr" href="https://manned.org/dd.1">dd(1)</a> utility in
      &#x201C;Image-Copy&#x201D; mode. See <code class="Cm">bs</code> option of
      <a class="Xr" href="https://manned.org/dd.1">dd(1)</a> utility. Default is
      4M. Requires <code class="Cm">--icopy</code> or
      <code class="Cm">--dd</code> install modifier.
    <p class="Pp"><b class="Sy">Notice:</b> values bellow 50k can sensibly slow
        down the installation.</p>
  </dd>
  <dt><a class="permalink" href="#F"><code class="Fl" id="F">-F</code></a>
    <var class="Ar">fstype</var>, <code class="Cm">--fs</code>
    <var class="Ar">fstype</var></dt>
  <dd>Format to <var class="Ar">fstype</var> instead of default FAT32 (vfat).
      Supported types: vfat, exfat, ntfs, ext2, ext3, ext4, and f2fs. Requires
      <code class="Cm">--mrsync</code> install modifier or
      <b class="Sy">format</b> action.
    <p class="Pp"><b class="Sy">Important Notice:</b> usage with
        <b class="Sy">install</b> action is discouraged: it will be rejected in
        &#x201C;Automatic&#x201D; and &#x201C;Image-Copy&#x201D; modes, and
        could prevent UEFI boot in &#x201C;Mount-Rsync&#x201D; mode since the
        UEFI standard mandates a FAT32 partition.</p>
  </dd>
  <dt><a class="permalink" href="#--force-hash-check"><code class="Cm" id="--force-hash-check">--force-hash-check</code></a></dt>
  <dd>Fail and exit when no valid hash is found. The default behavior is to
      prompt user when hash check fails.</dd>
  <dt><a class="permalink" href="#--gpt"><code class="Cm" id="--gpt">--gpt</code></a></dt>
  <dd>Enforce GPT partition scheme over default MBR. Requires
      <code class="Cm">--mrsync</code> install modifier or
      <b class="Sy">format</b> action.
    <p class="Pp"><b class="Sy">Important Notice:</b> Booting systems are
        generally more sensible to GPT partition types compared to MBR partition
        types. It is thus advised that you explicitly set the partition type
        with <code class="Cm">--part-type</code> modifier when enforcing GPT.
        This is however not required for Windows images which have a special
        handling by <code class="Nm">bootiso</code>.</p>
  </dd>
  <dt><a class="permalink" href="#H,"><code class="Fl" id="H,">-H,</code></a>
    <code class="Cm">--no-hash-check</code></dt>
  <dd>Skip the lookup for hash sum-files in the same folder as
      <var class="Ar">imagefile</var>. See <code class="Cm">--hash-file</code>
      definition for a description of the lookup mechanism.</dd>
  <dt><a class="permalink" href="#--hash-file"><code class="Cm" id="--hash-file">--hash-file</code></a>
    <var class="Ar">hashfile</var></dt>
  <dd>Explicitly set the <var class="Ar">hashfile</var> containing the ISO hash.
      The default behavior is to look for files matching those conditions:
    <ol class="Bl-enum">
      <li>Located in the same folder as <var class="Ar">imagefile</var>.</li>
      <li>Which name is the concatenation of <var class="Ar">imagefile</var>,
          &#x201C;.&#x201D; and the hash function name suffixed with
          &#x201C;sum&#x201D;.</li>
    </ol>
    <p class="Pp">Supported hash functions are md5, sha1, sha256 and sha512.</p>
  </dd>
  <dt><a class="permalink" href="#J,"><code class="Fl" id="J,">-J,</code></a>
    <code class="Cm">--no-eject</code></dt>
  <dd>Do not eject device after unmount. This is the default behavior with
      <b class="Sy">format</b> action.</dd>
  <dt><a class="permalink" href="#--local-bootloader"><code class="Cm" id="--local-bootloader">--local-bootloader</code></a></dt>
  <dd>Prevent download of remote bootloader and force local syslinux during
      installation. This might work, but could also lower the chances of
      successful legacy BIOS boot, especially when the major versions mismatch.
      Requires <code class="Cm">--mrsync</code> install modifier.</dd>
  <dt><a class="permalink" href="#M,"><code class="Fl" id="M,">-M,</code></a>
    <code class="Cm">--no-mime-check</code></dt>
  <dd>Don't assert that <var class="Ar">imagefile</var> has the right
    mime-type.</dd>
  <dt><a class="permalink" href="#--no-size-check"><code class="Cm" id="--no-size-check">--no-size-check</code></a></dt>
  <dd>Don't assert that selected device size is larger than
      <var class="Ar">imagefile</var>.</dd>
  <dt><a class="permalink" href="#--no-usb-check"><code class="Cm" id="--no-usb-check">--no-usb-check</code></a></dt>
  <dd>Don't assert that selected device is connected through USB bus.</dd>
  <dt><a class="permalink" href="#--no-wimsplit"><code class="Cm" id="--no-wimsplit">--no-wimsplit</code></a></dt>
  <dd>Prevent splitting <span class="Pa">/sources/install.wim</span> file in
      Windows ISOs. Requires <code class="Cm">--mrsync</code> install
    modifier.</dd>
  <dt><a class="permalink" href="#--part-type"><code class="Cm" id="--part-type">--part-type</code></a>
    <var class="Ar">typeid</var></dt>
  <dd>Set a specific MBR partition type, or GPT partition type when
      <code class="Cm">--gpt</code> modifier is set. Not to be confused with
      filesystem modifier <code class="Cm">--fs</code>. Requires
      <code class="Cm">--mrsync</code> install modifier or
      <b class="Sy">format</b> action.
    <p class="Pp">List available types for GPT or MBR with the following
        commands:</p>
    <p class="Pp"></p>
    <div class="Bd Bd-indent"><b class="Sy">sfdisk</b>
      <code class="Cm">--list-types --label</code>
      <span class="No">gpt</span></div>
    <div class="Bd Bd-indent"><b class="Sy">sfdisk</b>
      <code class="Cm">--list-types --label</code>
      <span class="No">mbr</span></div>
  </dd>
  <dt><a class="permalink" href="#--remote-bootloader"><code class="Cm" id="--remote-bootloader">--remote-bootloader</code></a>
    <var class="Ar">version</var></dt>
  <dd>Force download of
      <a class="Xr" href="https://manned.org/syslinux.1">syslinux</a> remote
      bootloader at version <var class="Ar">version</var>. Version must follow
      the pattern MAJOR.MINOR. Examples: 4.10, 6.04. That will only work with
      x64 system architecture. Requires <code class="Cm">--mrsync</code> install
      modifier.</dd>
  <dt><a class="permalink" href="#t"><code class="Fl" id="t">-t</code></a>
    <var class="Ar">fstype</var>, <code class="Cm">--type</code>
    <var class="Ar">fstype</var></dt>
  <dd>Deprecated because of potential confusion with
      <code class="Cm">--part-type</code>. Use <code class="Fl">-F</code>,
      <code class="Cm">--fs</code> instead.</dd>
  <dt><a class="permalink" href="#L"><code class="Fl" id="L">-L</code></a>
    <var class="Ar">label</var>, <code class="Cm">--label</code>
    <var class="Ar">label</var></dt>
  <dd>Set partition label as <var class="Ar">label</var> instead of inferring.
      <code class="Nm">bootiso</code> will cut labels which are too long
      regarding the selected filesystem limitations. Requires
      <code class="Cm">--mrsync</code> install modifier or
      <b class="Sy">format</b> action.</dd>
  <dt><a class="permalink" href="#y,"><code class="Fl" id="y,">-y,</code></a>
    <code class="Cm">--assume-yes</code></dt>
  <dd>Don't prompt for confirmation before erasing and partitioning USB
    device.</dd>
  <dt><a class="permalink" href="#--"><code class="Cm" id="--">--</code></a></dt>
  <dd>Posix end of options. <code class="Nm">bootiso</code> will not process any
      option after this flag and treat the upcoming item as
      <var class="Ar">imagefile</var>.</dd>
</dl>
</section>
<section class="Ss">
<h2 class="Ss" id="Install_mode_modifiers"><a class="permalink" href="#Install_mode_modifiers">Install
  mode modifiers</a></h2>
These modifiers only apply to default <b class="Sy">install</b> action (see
  <a class="Sx" href="#INSTALL_MODES">INSTALL MODES</a> bellow).
<dl class="Bl-tag">
  <dt><a class="permalink" href="#--icopy"><code class="Cm" id="--icopy">--icopy</code></a>,
    <code class="Cm">--dd</code></dt>
  <dd>Assert &#x201C;Image-Copy&#x201D; mode and enable specific options for
      this mode. <code class="Nm">bootiso</code> will fail if the
      <var class="Ar">imagefile</var> is not hybrid.</dd>
  <dt><a class="permalink" href="#--mrsync"><code class="Cm" id="--mrsync">--mrsync</code></a></dt>
  <dd>Assert &#x201C;Mount-Rsync&#x201D; mode and enable specific options for
      this mode. <code class="Nm">bootiso</code> will fail if the
      <var class="Ar">imagefile</var> is not an ISO 9660 filesystem.</dd>
</dl>
</section>
</section>
<section class="Sh">
<h1 class="Sh" id="INSTALL_MODES"><a class="permalink" href="#INSTALL_MODES">INSTALL
  MODES</a></h1>
<code class="Nm">bootiso</code> has three operating modes for
  <b class="Sy">install</b> action. When you assert a specific mode, it allows
  you to provide advanced options for this mode.
<dl class="Bl-tag">
  <dt><i class="Em">Automatic</i></dt>
  <dd>In the default &#x201C;Automatic&#x201D; mode,
      <code class="Nm">bootiso</code> will inspect
      <var class="Ar">imagefile</var> and choose the best strategy to end up
      with a bootable USB stick. These strategies are described in the below two
      modes. Invoke <code class="Cm">--inspect</code> action flag to print
      identified boot capabilities and the compatible strategy.</dd>
  <dt><i class="Em">Image-Copy</i></dt>
  <dd>In &#x201C;Image-Copy&#x201D; mode enforceable with
      <code class="Cm">--icopy</code> install modifier,
      <code class="Nm">bootiso</code> uses
      <a class="Xr" href="https://manned.org/dd.1">dd(1)</a> utility to make a
      raw copy of <var class="Ar">imagefile</var>. This is perfectly appropriate
      when the image file contains a builtin boot capability. It requires to
      have a partition table, which can be directly copied to the target device
      along with the data partitions. ISOs with this feature are called
      &#x201C;hybrid&#x201D;, and a vast majority of GNU-Linux images are
      shipped that way. See
      <a class="Xr" href="https://manned.org/isohybrid.1">isohybrid(1)</a> for
      more information on this topic.</dd>
  <dt><i class="Em">Mount-Rsync</i></dt>
  <dd>In &#x201C;Mount-Rsync&#x201D; mode enforceable with
      <code class="Cm">--mrsync</code> install modifier,
      <code class="Nm">bootiso</code> creates a MBR partition table and format
      one partition in the USB drive and copy files from mounted ISO. The
      behavior will change depending on the presence of special files to
      identify whether legacy BIOS boot or UEFI boot should be preferred.
      <code class="Nm">bootiso</code> will check conditions to figure out which
      ones to choose:
    <ol class="Bl-enum">
      <li>If <span class="Pa">/efi/boot/*</span> boot files exist, choose UEFI
          boot and FAT32 filesystem mandated by the standard. In which case, if
          a Windows <span class="Pa">/sources/install.wim</span> file is found,
          <a class="Xr" href="https://manned.org/wimlib-imagex.1">wimlib-imagex(1)</a>
          will be used to circumvent FAT32 filesystem size limitations. You can
          prevent this behavior with <code class="Cm">--no-wimsplit</code>
          modifier flag.</li>
      <li>If <a class="Xr" href="https://manned.org/syslinux.1">syslinux(1)</a>
          configuration files are found, it will install the
          <a class="Xr" href="https://manned.org/syslinux.1">syslinux</a>
          bootloader to allow legacy BIOS boot and select MBR partition table.
          When the local version of
          <a class="Xr" href="https://manned.org/syslinux.1">syslinux</a>
          doesn't match ISO version, it will attempt to download the closest
          version available in
          <a class="Lk" href="https://www.kernel.org">kernel.org</a> unless
          <code class="Cm">--local-bootloader</code> flag is set. When invoked
          with <code class="Cm">--remote-bootloader</code>
          <var class="Ar">version</var> modifier,
          <code class="Nm">bootiso</code> will ignore local version check and
          forces download of the kernel.org version at
          <var class="Ar">version</var>.</li>
      <li>If none of the above conditions are met,
          <code class="Nm">bootiso</code> will fail and exit.</li>
    </ol>
  </dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="GUARDRAILS"><a class="permalink" href="#GUARDRAILS">GUARDRAILS</a></h1>
<code class="Nm">bootiso</code> performs a set of tests with user safety and
  confidence in mind:
<ul class="Bl-bullet">
  <li>Checks <var class="Ar">imagefile</var> hash sum against a hash file if one
      found. Supported hash algorithms are md5, sha1, sha256 and sha512.</li>
  <li>Checks <var class="Ar">imagefile</var> mime-type with
      <a class="Xr" href="https://manned.org/file.1">file(1)</a> utility.</li>
  <li>Asserts selected device is connected through USB preventing system damages
      and exit if it doesn't, with
      <a class="Xr" href="https://manned.org/lsblk.8">lsblk(8)</a> utility.</li>
  <li>Asserts that selected image is not larger than selected device.</li>
  <li>Prompts for confirmation before erasing and partitioning USB device.</li>
</ul>
</section>
<section class="Sh">
<h1 class="Sh" id="ENVIRONMENT"><a class="permalink" href="#ENVIRONMENT">ENVIRONMENT</a></h1>
<dl class="Bl-tag">
  <dt><a class="permalink" href="#BOOTISO_IMAGES_COMPLETIONS_PATH"><code class="Ev" id="BOOTISO_IMAGES_COMPLETIONS_PATH">BOOTISO_IMAGES_COMPLETIONS_PATH</code></a></dt>
  <dd>This variable is interpreted by shell completion scripts as a path
      pointing to a directory to look up for image and hashsum files and suggest
      those files when no files are matched in current working directory. When
      not set, either <code class="Ev">XDG_DOWNLOAD_DIR</code> if defined or
      <span class="Pa">~/Downloads</span> otherwise are used instead. See
      <a class="Xr" href="https://manned.org/xdg-user-dir.1">xdg-user-dir(1)</a>.</dd>
  <dt><a class="permalink" href="#BOOTISO_SYSLINUX_LIB_ROOT"><code class="Ev" id="BOOTISO_SYSLINUX_LIB_ROOT">BOOTISO_SYSLINUX_LIB_ROOT</code></a></dt>
  <dd>Used in &#x201C;Mount-Rsync&#x201D; mode when
      <var class="Ar">imagefile</var> has syslinux boot capability. In which
      case, <code class="Nm">bootiso</code> will need to install a MBR boot
      program which it needs to locate. This variable sets syslinux assets root,
      from which MBR program file will be searched. Defaults to
      <span class="Pa">/usr/lib/syslinux</span>.</dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="EXIT_STATUS"><a class="permalink" href="#EXIT_STATUS">EXIT
  STATUS</a></h1>
The <code class="Nm">bootiso</code> utility exits 0 on success, &gt;0 on error.
  Error exit status &lt; 64 depict unfavorable conditions external to the
  program such as a missing file. On the other hand, exit status superior or
  equal to 64 depict an execution failure.
<dl class="Bl-tag">
  <dt><b class="Sy">0</b></dt>
  <dd><b class="Sy">Success</b>.</dd>
  <dt><b class="Sy">1</b></dt>
  <dd><b class="Sy">Assertion failed</b>: a safety check has not passed. See
      <a class="Sx" href="#GUARDRAILS">GUARDRAILS</a>.</dd>
  <dt><b class="Sy">2</b></dt>
  <dd><b class="Sy">Synopsis noncompliance</b>: program invocation does not
      match any known combination of options and operands.</dd>
  <dt><b class="Sy">3</b></dt>
  <dd><b class="Sy">Missing boot capabilities</b>:
      <var class="Ar">imagefile</var> does not have boot capabilities
      <code class="Nm">bootiso</code> knows of.</dd>
  <dt><b class="Sy">4</b></dt>
  <dd><b class="Sy">File doesn't exists</b>: a file provided as option argument
      or operand does not exist.</dd>
  <dt><b class="Sy">5</b></dt>
  <dd><b class="Sy">Bad file</b>: a file provided as option argument or operand
      exist, but is not of the expected format.</dd>
  <dt><b class="Sy">6</b></dt>
  <dd><b class="Sy">Device doesn't exists</b>: a device provided as option
      argument does not exist.</dd>
  <dt><b class="Sy">7</b></dt>
  <dd><b class="Sy">Bad device</b>: a device provided as option argument exists
      in filesystem, but is not a device node.</dd>
  <dt><b class="Sy">8</b></dt>
  <dd><b class="Sy">No devices</b>: there are no drives in selection.</dd>
  <dt><b class="Sy">9</b></dt>
  <dd><b class="Sy">Missing dependency</b>: <code class="Nm">bootiso</code> is
      missing a program.</dd>
  <dt><b class="Sy">10</b></dt>
  <dd><b class="Sy">Host unreachable</b>: an operation involving network access
      could not be performed with host.</dd>
  <dt><b class="Sy">11</b></dt>
  <dd><b class="Sy">User aborted</b>: the action was canceled by user.</dd>
  <dt><b class="Sy">12</b></dt>
  <dd><b class="Sy">Missing privilege</b>: you need to run this command as
    root.</dd>
  <dt><b class="Sy">13</b></dt>
  <dd><b class="Sy">Failed postulate</b>: an assumption about system state
      turned out false.</dd>
  <dt><b class="Sy">64</b></dt>
  <dd><b class="Sy">I/O error</b>: a read/write command has unexpectedly
    failed.</dd>
  <dt><b class="Sy">65</b></dt>
  <dd><b class="Sy">Program state error</b>: the program reached an unexpected
      state. This is a bug.</dd>
  <dt><b class="Sy">66</b></dt>
  <dd><b class="Sy">Third party error</b>: a command has unexpectedly
    failed.</dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
<dl class="Bl-tag">
  <dt><b class="Sy">Probe</b></dt>
  <dd>To have a quick feedback, probe around to check
      <code class="Nm">bootiso</code> capabilities with given
      &#x201C;file.iso&#x201D; and list USB drives candidates:
    <p class="Pp"></p>
    <div class="Bd Bd-indent"><code class="Nm">bootiso</code>
      <code class="Fl">-p</code> <span class="No">file.iso</span></div>
    <p class="Pp">Alternatively, you can use <code class="Fl">-i</code> action
        flag to solely inspect &#x201C;file.iso&#x201D; or
        <code class="Fl">-l</code> action flag to solely list USB drives.</p>
  </dd>
  <dt><b class="Sy">Install</b></dt>
  <dd>With the default <b class="Sy">install</b> action in
      &#x201C;Automatic&#x201D; mode, give &#x201C;file.iso&#x201D; as sole
      argument and you'll be prompted to select from available USB drives. If
      there is only one USB device connected, <code class="Nm">bootiso</code>
      will automatically select it:
    <p class="Pp"></p>
    <div class="Bd Bd-indent"><code class="Nm">bootiso</code>
      <span class="No">file.iso</span></div>
    <p class="Pp">You can also explicitly set the target USB device:</p>
    <p class="Pp"></p>
    <div class="Bd Bd-indent"><code class="Nm">bootiso</code>
      <code class="Fl">-d</code> <span class="No">/dev/sdX file.iso</span></div>
    <p class="Pp">Avoid being prompted before writing to USB drive and
        autoselect device when there is exactly one connected:</p>
    <p class="Pp"></p>
    <div class="Bd Bd-indent"><code class="Nm">bootiso</code>
      <code class="Fl">-ay</code> <span class="No">file.iso</span></div>
    <p class="Pp">Add a FAT32 data partition in &#x201C;Image-Copy&#x201D; mode
        (only works with hybrid images):</p>
    <p class="Pp"></p>
    <div class="Bd Bd-indent"><code class="Nm">bootiso</code>
      <code class="Cm">--icopy</code> <code class="Fl">-D</code>
      <span class="No">file.iso</span></div>
  </dd>
  <dt><b class="Sy">Format</b></dt>
  <dd>Format the USB drive to NTFS and label it &#x201C;SONY JOE&#x201D;. Be
      careful with the label name, which size and character set is limited by
      the target filesystem:
    <p class="Pp"></p>
    <div class="Bd Bd-indent"><code class="Nm">bootiso</code>
      <code class="Fl">-ft</code> <span class="No">ntfs</span>
      <code class="Fl">-L</code> <span class="No">'SONY JOE'</span></div>
  </dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="TROUBLESHOOTING"><a class="permalink" href="#TROUBLESHOOTING">TROUBLESHOOTING</a></h1>
<ul class="Bl-bullet">
  <li>Some live-CD systems are not shipped with USB-3 drivers or are known to
      work poorly with USB-3 ports. Always try a USB-2 port, or if you don't
      have one, use a USB-2 stick, before considering the boot a failure. As of
      2020, Windows 10 (UEFI) is among those systems.</li>
  <li>If legacy BIOS boot doesn't work, be advised that UEFI-compliant boot
      systems have a Compatibility Support Module (CSM) option to enable legacy
      BIOS boot.</li>
  <li>If <code class="Nm">bootiso</code> does not detect your USB device, you
      can try running
    <p class="Pp"></p>
    <div class="Bd Bd-indent"><b class="Sy">udevadm settle</b></div>
    <p class="Pp">and try again.</p>
  </li>
  <li>If the <var class="Ar">imagefile</var> has UEFI support and the boot fails
      on a UEFI-compatible machine, one can try different partition types with
      <code class="Cm">--part-type</code> modifier, because some systems will
      assume specific types and refuse to load data otherwise. This is
      especially prevalent with GPT partition tables.</li>
</ul>
</section>
<section class="Sh">
<h1 class="Sh" id="COPYRIGHT"><a class="permalink" href="#COPYRIGHT">COPYRIGHT</a></h1>
Copyright Jules Sam. Randolph.
<p class="Pp">GPLv3 License:
    <a class="Lk" href="https://www.gnu.org/licenses/gpl-3.0">https://www.gnu.org/licenses/gpl-3.0</a>
    This is free software: you are free to change and redistribute it. There is
    NO WARRANTY, to the extent permitted by law.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<a class="Xr" href="https://manned.org/dd.1">dd(1)</a>,
  <a class="Xr" href="https://manned.org/isohybrid.1">isohybrid(1)</a>,
  <a class="Xr" href="https://manned.org/syslinux.1">syslinux(1)</a>,
  <a class="Xr" href="https://manned.org/wimlib-imagex.1">wimlib-imagex(1)</a>
</section>
<section class="Sh">
<h1 class="Sh" id="COMPATIBILITY"><a class="permalink" href="#COMPATIBILITY">COMPATIBILITY</a></h1>
<code class="Nm">bootiso</code> should work with any terminal emulator and the
  Linux console. More specifically, the output device should support the
  following features:
<ul class="Bl-bullet">
  <li>ASCII character set;</li>
  <li>ECMA-48 SGR sequences to feature color, bold and underline text attributes
      as documented in
      <a class="Xr" href="https://manned.org/console_codes.4">console_codes(4)</a>.</li>
</ul>
</section>
<section class="Sh">
<h1 class="Sh" id="STANDARDS"><a class="permalink" href="#STANDARDS">STANDARDS</a></h1>
<code class="Nm">bootiso</code> is compliant with:
<ul class="Bl-bullet">
  <li><span class="St">IEEE Std 1003.1-2008 (&#x201C;POSIX.1&#x201D;)</span>,
      Ch. 12, &#x201C;Utility Conventions&#x201D;;</li>
  <li>Filesystem Hierarchy Standard, version 3.0.</li>
</ul>
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<span class="An">Jules Sam. Randolph</span>
  &#x27E8;jules.sam.randolph@gmail.com&#x27E9;
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">May 22, 2020</td>
    <td class="foot-os">bootiso 4.1.1</td>
  </tr>
</table>
</body>
